home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hardcore Visual Basic 5.0 (2nd Edition)
/
Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso
/
Source
/
Sieve
/
SIEVEATL
/
SIEVE.H
< prev
next >
Wrap
C/C++ Source or Header
|
1996-10-29
|
2KB
|
53 lines
// Sieve.h : Declaration of the CSieveATL
#include "resource.h" // main symbols
const short PRIME_MAX = 32767;
// CSieveATL
class CSieveATL :
public CComDualImpl<ICSieveATL, &IID_ICSieveATL, &LIBID_SIEVEATLLib>,
public ISupportErrorInfo,
public CComObjectRoot,
public CComCoClass<CSieveATL,&CLSID_CSieveATL>
{
public:
CSieveATL();
~CSieveATL();
BEGIN_COM_MAP(CSieveATL)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ICSieveATL)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
//DECLARE_NOT_AGGREGATABLE(CSieveATL)
// Remove the comment from the line above if you don't want your object to
// support aggregation. The default is to support it
DECLARE_REGISTRY(CSieveATL, _T("SieveATLSvr.CSieaveATL.1"), _T("ShortCutSvr.CShortCut"), IDS_CSIEVEATL_DESC, THREADFLAGS_BOTH)
// ISupportsErrorInfo
virtual HRESULT STDMETHODCALLTYPE
InterfaceSupportsErrorInfo(REFIID riid);
// ICSieveATL
public:
virtual HRESULT STDMETHODCALLTYPE
get_NextPrime(short * piRet);
virtual HRESULT STDMETHODCALLTYPE
get_MaxPrime(short * piRet);
virtual HRESULT STDMETHODCALLTYPE
put_MaxPrime(short i);
virtual HRESULT STDMETHODCALLTYPE
get_Primes(short * piRet);
virtual HRESULT STDMETHODCALLTYPE
ReInitialize();
virtual HRESULT STDMETHODCALLTYPE
AllPrimes(SAFEARRAY ** ai);
private:
short * m_af; // Array of flags
int m_iCur; // Current index
short m_iMaxPrime; // Maximum index
short m_cPrime; // Count of primes
};